package mx.edu.itschapala.sistemas.septimo.Control;

import java.util.ArrayList;
import java.util.List;
import mx.edu.itschapala.sistemas.septimo.Modelo.Producto;
import mx.edu.itschapala.sistemas.septimo.Vista.enumeracion.TipoBusqueda;

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Sony
 */
public class ProductoLnListaProducto implements ProductoLnLocalProducto{

      private List<Producto> lista = new ArrayList<Producto>();
    
    @Override
    public void registrar(Producto producto) {
      lista.add(producto);
        //System.out.print("un momentito");
        
     
    }

    @Override
    public void modificar(Producto producto) {
       Producto p=buscarPorCodigo(producto.getCodigo());
        if (p!=null) {
            lista.remove(p);
            lista.add(producto);
         
         }
    }

    @Override
    public void eliminar(Producto producto) {
        Producto p=buscarPorCodigo(producto.getCodigo());
       if (p!=null) {
        lista.remove(p);
    }
    }

    @Override
    public Producto buscarPorCodigo(int codigo) {
     Producto algo=null;
        for (Producto p : lista ) {
            if (p.getCodigo()==codigo) {
                algo=p;
            }    }
    return null;
    }

    @Override
    public List<Producto> getTodos() {
          return lista;
    }

    @Override
    public List<Producto> getPornombre(String Nombre, TipoBusqueda criterio) {

    List<Producto> tmp= new ArrayList<Producto>();
    switch(criterio){
        case INICIA:
            for(Producto p: lista){
                if(p.getNombre().startsWith(Nombre)){
                    tmp.add(p);
                    
                }
            }
        break;
        case CONTIENE:
            for(Producto p : lista){
                if(p.getNombre().contains(Nombre)){
                    tmp.add(p);
                }
            }
          break;  
    }
    return tmp;
    } 
    
}
